package 面试;

public class 最大子序列和 {

    public static int maxSequence(int[] nums) {
        int maxSum, maxTemp;
        maxSum = maxTemp = nums[0];   // 初始化最大和为 a[0]
        for (int i = 1; i < nums.length; i++) {
            if (maxTemp <= 0)
                maxTemp = nums[i];// 若算出来的最大子序列和小于0，则使用当前的nums[i]作为新的最大子序列和
            else
                maxTemp += nums[i]; // 不然就累加

            // 更新最大连续子序列和
            if (maxTemp > maxSum) {
                maxSum = maxTemp;
            }
        }
        return maxSum;
    }
}
